Vector¶

Vector is base class of other vector like classes. It represents a series of vectors.

In [1]:
from py3d import Vector
Vector()
Out[1]:
Vector([], dtype=float64)
In [3]:
Vector([0, 0, 0, 0])
Out[3]:
Vector([0, 0, 0, 0])
In [5]:
Vector([1, 2, -4])
Out[5]:
Vector([ 1,  2, -4])
In [7]:
Vector([1, 2, 3], (2,))
Out[7]:
Vector([[1, 2, 3],
        [1, 2, 3]])
In [9]:
import py3d
py3d.Vector([1, 2, 0, 3], ())
Out[9]:
Vector([1, 2, 0, 3])
In [10]:
Vector([1], (2,))
Out[10]:
Vector([[1],
        [1]])
In [12]:
V32 = Vector([
    [1, 3],
    [2, -9],
    [0.1, -3]])
V32
Out[12]:
Vector([[ 1. ,  3. ],
        [ 2. , -9. ],
        [ 0.1, -3. ]])

Get unit vector

In [13]:
V32.U
Out[13]:
Vector([[ 0.31622777,  0.9486833 ],
        [ 0.21693046, -0.97618706],
        [ 0.03331483, -0.99944491]])

Get length of vectors

In [14]:
V32.L
Out[14]:
array([[3.16227766],
       [9.21954446],
       [3.0016662 ]])
In [16]:
from numpy import allclose
assert allclose(V32.U.L, [[1], [1], [1]])

Get homogeneous vector

In [17]:
V32.H
Out[17]:
Vector([[ 1. ,  3. ,  1. ],
        [ 2. , -9. ,  1. ],
        [ 0.1, -3. ,  1. ]])

Get a series of random vectors

In [19]:
import py3d
py3d.Vector.Rand(2,3,4)
Out[19]:
Vector([[[0.04314591, 0.37308965, 0.01933561, 0.76853568],
         [0.42643145, 0.25219989, 0.66571076, 0.48091316],
         [0.80028481, 0.82554953, 0.99652915, 0.43737433]],

        [[0.8062254 , 0.4675547 , 0.62828839, 0.53298417],
         [0.63024415, 0.16777643, 0.65273213, 0.59812528],
         [0.87000744, 0.29883324, 0.04370819, 0.5930585 ]]])
In [21]:
import py3d
py3d.Vector([[0,0],[1,2],[3,4]]).diff()
Out[21]:
Vector([[1, 2],
        [2, 2]])

Read pcd file

In [23]:
import py3d
py3d.read_pcd("py3d/doc/ascii.pcd").xyz.as_point()
Out[23]:
In [24]:
import py3d
pcd = py3d.read_pcd("py3d/doc/binary.pcd")
pcd.xyz.as_point()
Out[24]:
In [25]:
pcd.to_pcd("test.pcd")